Signaling picture size in video coding

ABSTRACT

A video encoder is configured to determine a picture size for one or more pictures included in a video sequence. The picture size associated with the video sequence may be a multiple of an aligned coding unit size for the video sequence. In one example, the aligned coding unit size for the video sequence may comprise a minimum coding unit size where the minimum coding unit size is selected from a plurality of smallest coding unit sizes corresponding to different pictures in the video sequence. A video decoder is configured to obtain syntax elements to determine the picture size and the aligned coding unit size for the video sequence. The video decoder decodes the pictures included in the video sequence with the picture size, and stores the decoded pictures in a decoded picture buffer.

This application claims the benefit of:

U.S. Provisional Application No. 61/508,659, filed Jul. 17, 2011;

U.S. Provisional Application No. 61/530,819, filed Sep. 2, 2011; and

U.S. Provisional Application No. 61/549,480 filed Oct. 20, 2011, each ofwhich are hereby incorporated by reference in their entirety.

TECHNICAL FIELD

This disclosure relates to the field of video coding.

BACKGROUND

Digital video capabilities can be incorporated into a wide range ofdevices, including digital televisions, digital direct broadcastsystems, wireless broadcast systems, personal digital assistants (PDAs),laptop or desktop computers, tablet computers, e-book readers, digitalcameras, digital recording devices, digital media players, video gamingdevices, video game consoles, cellular or satellite radio telephones,so-called “smart phones,” video teleconferencing devices, videostreaming devices, and the like. Digital video devices implement videocompression techniques, such as those described in the standards definedby MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Part 10, AdvancedVideo Coding (AVC), the High Efficiency Video Coding (HEVC) standardpresently under development, and extensions of such standards. Videodevices may transmit, receive, encode, decode, and/or store digitalvideo information more efficiently by implementing such videocompression techniques.

Video compression techniques perform spatial (intra-picture) predictionand/or temporal (inter-picture) prediction to reduce or removeredundancy inherent in video sequences. For block-based video coding, avideo slice (i.e., a video frame or a portion of a video frame) may bepartitioned into video blocks, which may also be referred to astreeblocks, coding units (CUs) and/or coding nodes. Video blocks in anintra-coded (I) slice of a picture are encoded using spatial predictionwith respect to reference samples in neighboring blocks in the samepicture. Video blocks in an inter-coded (P or B) slice of a picture mayuse spatial prediction with respect to reference samples in neighboringblocks in the same picture or temporal prediction with respect toreference samples in other reference pictures. Pictures may be referredto as frames, and reference pictures may be referred to a referenceframes.

Spatial or temporal prediction results in a predictive block for a blockto be coded. Residual data represents pixel differences between theoriginal block to be coded and the predictive block. An inter-codedblock is encoded according to a motion vector that points to a block ofreference samples forming the predictive block, and the residual dataindicating the difference between the coded block and the predictiveblock. An intra-coded block is encoded according to an intra-coding modeand the residual data. For further compression, the residual data may betransformed from the pixel domain to a transform domain, resulting inresidual transform coefficients, which then may be quantized. Thequantized transform coefficients, initially arranged in atwo-dimensional array, may be scanned in order to produce aone-dimensional vector of transform coefficients, and entropy coding maybe applied to achieve even more compression.

SUMMARY

In general, this disclosure describes techniques for coding video dataincluded in pictures or frames of a video sequence. In particular, thisdisclosure describes techniques where a picture size for a group ofpictures in the video sequence may be coded based on an aligned codingunit size for the video sequence. The aligned coding unit size for thevideo sequence may be selected from several possible coding unit sizessupported by the video coding scheme. The techniques of this disclosureinclude signaling an aligned coding unit size for one or more of thepictures in the video sequence, and coding a size for the one or morepictures as a multiple of the smallest coding unit.

In one example of the disclosure, a method for encoding video datacomprises determining a smallest coding unit size for each of aplurality of pictures defining a video sequence, wherein a smallestcoding unit size is selected from a plurality of possible coding unitsizes including a maximum possible coding unit size; determining analigned coding unit size for the video sequence based on the pluralityof possible coding unit sizes; determining a picture size associatedwith the video sequence, wherein the picture size associated with thevideo sequence is an multiple of the aligned coding unit size; andsignaling the aligned coding unit size value in sequence level syntaxinformation.

In another example, a method of decoding video data comprises obtaininga coded video sequence including a first picture coded using a firstsmallest coding unit size and a second picture coded using secondsmallest coding unit size; obtaining a picture size of a decoded pictureto be stored in a decoded picture buffer wherein the picture size is amultiple of one of the first coding unit size, the second coding unitsize, or a maximum coding unit size; and storing the decoded picture ina decoded picture buffer.

In another example, an apparatus for encoding video data comprises avideo encoding device configured to determine a smallest coding unitsize for each of a plurality of pictures defining a video sequence,wherein a smallest coding unit size is selected from a plurality ofpossible coding unit sizes including a maximum possible coding unitsize; determine an aligned coding unit size for the video sequence basedon the plurality of possible coding unit sizes; determine a picture sizeassociated with the video sequence, wherein the picture size associatedwith the video sequence is an multiple of the aligned coding unit size;and signal the aligned coding unit size value in sequence level syntaxinformation.

In another example, an apparatus for decoding video data comprises avideo decoding device configured to obtain a coded video sequenceincluding a first picture coded using a first smallest coding unit sizeand a second picture coded using second smallest coding unit size;obtain a picture size of a decoded picture to be stored in a decodedpicture buffer wherein the picture size is a multiple of one of thefirst coding unit size, the second coding unit size, or a maximum codingunit size; and store the decoded picture in a decoded picture buffer.

In another example, a device for encoding video data comprises means fordetermining a smallest coding unit size for each of a plurality ofpictures defining a video sequence, wherein a smallest coding unit sizeis selected from a plurality of possible coding unit sizes including amaximum possible coding unit size; means for determining an alignedcoding unit size for the video sequence based on the plurality ofpossible coding unit sizes; means for determining a picture sizeassociated with the video sequence, wherein the picture size associatedwith the video sequence is an multiple of the aligned coding unit size;and means for signaling the aligned coding unit size value in sequencelevel syntax information.

In another example, a device for decoding video data comprises means forobtaining a coded video sequence including a first picture coded using afirst smallest coding unit size and a second picture coded using secondsmallest coding unit size; means for obtaining a picture size of adecoded picture to be stored in a decoded picture buffer wherein thepicture size is a multiple of one of the first coding unit size, thesecond coding unit size, or a maximum coding unit size; and meansstoring the decoded picture in a decoded picture buffer.

In another example, a computer-readable storage medium comprisesinstructions stored thereon that, when executed, cause a processor of adevice for encoding video data to determine a smallest coding unit sizefor each of a plurality of pictures defining a video sequence, wherein asmallest coding unit size is selected from a plurality of possiblecoding unit sizes including a maximum possible coding unit size;determine an aligned coding unit size for the video sequence based onthe plurality of possible coding unit sizes; determine a picture sizeassociated with the video sequence, wherein the picture size associatedwith the video sequence is an multiple of the aligned coding unit size;and signal the aligned coding unit size value in sequence level syntaxinformation.

In another example, a computer-readable storage medium comprisesinstructions stored thereon that, when executed, cause a processor of adevice for decoding video data to obtain a coded video sequenceincluding a first picture coded using a first smallest coding unit sizeand a second picture coded using second smallest coding unit size;obtain a picture size of a decoded picture to be stored in a decodedpicture buffer wherein the picture size is a multiple of one of thefirst coding unit size, the second coding unit size, or a maximum codingunit size; and store the decoded picture in a decoded picture buffer.

The details of one or more examples are set forth in the accompanyingdrawings and the description below. Other features, objects, andadvantages will be apparent from the description and drawings, and fromthe claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram illustrating an example video encoding anddecoding system.

FIG. 2 is a block diagram illustrating an example video encoder that mayimplement the techniques described in this disclosure.

FIG. 3 is a flowchart illustrating an example technique for encodingvideo data according to the techniques of this disclosure.

FIG. 4 is a block diagram illustrating an example video decoder that mayimplement the techniques described in this disclosure.

FIG. 5 is a flowchart illustrating an example technique for decodingvideo data according to the techniques of this disclosure.

DETAILED DESCRIPTION

A video sequence may include a group of pictures. Each picture in thegroup of pictures may have a smallest coding unit size. In one example,the smallest coding unit size may be a rectangle or square with one ofthe following pixel or sample dimensions: four pixels, eight pixels, 16pixels, 32 pixels, and 64 pixels. In order to increase coding efficiencyof the video sequence, it may be useful to determine the smallest codingunit size for the video sequence and specify a picture size for thegroup of pictures where the picture size is a multiple of the minimum ofthe smallest coding unit size for the video sequence.

FIG. 1 is a block diagram illustrating one example of a video encodingand decoding system 10 that may implement techniques of this disclosure.As shown in FIG. 1, system 10 includes a source device 12 that transmitsencoded video to a destination device 16 via a communication channel 15.Source device 12 and destination device 16 may comprise any of a widerange of devices. In some cases, source device 12 and destination device16 may comprise wireless communication device handsets, such asso-called cellular or satellite radiotelephones. The techniques of thisdisclosure, however, which apply generally to the encoding and decodingmay be applied to non-wireless devices including video encoding and/ordecoding capabilities. Source device 12 and destination device 16 aremerely examples of coding devices that can support the techniquesdescribed herein.

In the example of FIG. 1, source device 12 may include a video source20, a video encoder 22, a modulator/demodulator (modem) 23 and atransmitter 24. Destination device 16 may include a receiver 26, a modem27, a video decoder 28, and a display device 30.

Video source 20 may comprise a video capture device, such as a videocamera, a video archive containing previously captured video, a videofeed from a video content provider or another source of video. As afurther alternative, video source 20 may generate computergraphics-based data as the source video, or a combination of live video,archived video, and computer-generated video. In some cases, if videosource 20 is a video camera, source device 12 and destination device 16may form so-called camera phones or video phones. In each case, thecaptured, pre-captured or computer-generated video may be encoded byvideo encoder 22.

In some examples (but not all cases), once the video data is encoded byvideo encoder 22, the encoded video information may then be modulated bymodem 23 according to a communication standard, e.g., such as codedivision multiple access (CDMA), orthogonal frequency divisionmultiplexing (OFDM) or any other communication standard or technique.The encoded and modulated data can then be transmitted to destinationdevice 16 via transmitter 24. Modem 23 may include various mixers,filters, amplifiers or other components designed for signal modulation.Transmitter 24 may include circuits designed for transmitting data,including amplifiers, filters, and one or more antennas. Receiver 26 ofdestination device 16 receives information over channel 15, and modem 27demodulates the information. The video decoding process performed byvideo decoder 28 may include reciprocal techniques to the encodingtechniques performed by video encoder 22.

Communication channel 15 may comprise any wireless or wiredcommunication medium, such as a radio frequency (RF) spectrum or one ormore physical transmission lines, or any combination of wireless andwired media. Communication channel 15 may form part of a packet-basednetwork, such as a local area network, a wide-area network, or a globalnetwork such as the Internet. Communication channel 15 generallyrepresents any suitable communication medium, or collection of differentcommunication media, for transmitting video data from source device 12to destination device 16. Again, FIG. 1 is merely on example and thetechniques of this disclosure may apply to video coding settings (e.g.,video encoding or video decoding) that do not necessarily include anydata communication between the encoding and decoding devices. In otherexamples, data could be retrieved from a local memory, streamed over anetwork, or the like. An encoding device may encode and store data tomemory, and/or a decoding device may retrieve and decode data frommemory. In many cases, the encoding and decoding is performed byunrelated devices that do not communicate with one another, but simplyencode data to memory and/or retrieve and decode data from memory. Forexample, after video data has been encoded, the video data may bepacketized for transmission or storage. The video data may be assembledinto a video file conforming to any of a variety of standards, such asthe International Organization for Standardization (ISO) base media fileformat and extensions thereof, such as AVC.

In some cases, video encoder 22 and video decoder 28 may operatesubstantially according to a video compression standard such as theemerging HEVC standard. However, the techniques of this disclosure mayalso be applied in the context of a variety of other video codingstandards, including some old standards, or new or emerging standards.Although not shown in FIG. 1, in some cases, video encoder 22 and videodecoder 28 may each be integrated with an audio encoder and decoder, andmay include appropriate MUX-DEMUX units, or other hardware and software,to handle encoding of both audio and video in a common data stream orseparate data streams. If applicable, MUX-DEMUX units may conform to theITU H.223 multiplexer protocol, or other protocols such as the userdatagram protocol (UDP).

Video encoder 22 and video decoder 28 each may be implemented as one ormore microprocessors, digital signal processors (DSPs), applicationspecific integrated circuits (ASICs), field programmable gate arrays(FPGAs), discrete logic, software, hardware, firmware or combinationsthereof. Each of video encoder 22 and video decoder 28 may be includedin one or more encoders or decoders, either of which may be integratedas part of a combined encoder/decoder (CODEC) in a respective mobiledevice, subscriber device, broadcast device, server, or the like. Inthis disclosure, the term coder refers to an encoder, a decoder, orCODEC, and the terms coder, encoder, decoder and CODEC all refer tospecific machines designed for the coding (encoding and/or decoding) ofvideo data consistent with this disclosure. In this disclosure, the term“coding” may refer to either or both of encoding and/or decoding.

In some cases, source device 12 and destination device 16 may operate ina substantially symmetrical manner. For example, each of source device12 and destination device 16 may include video encoding and decodingcomponents. Hence, system 10 may support one-way or two-way videotransmission between source device 12 and destination device 16, e.g.,for video streaming, video playback, video broadcasting, or videotelephony.

Video encoder 22 and video decoder 28 may perform predictive coding inwhich a video block being coded is compared to one or more predictivecandidates in order to identify a predictive block. Video blocks mayexist within individual video frames or pictures (or other independentlydefined units of video, such as slices). Frames, slices, portions offrames, groups of pictures, or other data structures may be defined asunits of video information that include video blocks. The process ofpredictive coding may be intra (in which case the predictive data isgenerated based on neighboring intra data within the same video frame orslice) or inter (in which case the predictive data is generated based onvideo data in previous or subsequent frames or slices). Video encoder 22and video decoder 28 may support several different predictive codingmodes. Video encoder 22 may select a desirable video coding mode. Inpredictive coding, after a predictive block is identified, thedifferences between the current video block being coded and thepredictive block are coded as a residual block, and prediction syntax(such as a motion vector in the case of inter coding, or a predictivemode in the case of intra coding) is used to identify the predictiveblock. In some cases, the residual block may be transformed andquantized. Transform techniques may comprise a DCT process orconceptually similar process, integer transforms, wavelet transforms, orother types of transforms. In a DCT process, as an example, thetransform process converts a set of pixel values (e.g., residual pixelvalues) into transform coefficients, which may represent the energy ofthe pixel values in the frequency domain. Video encoder 22 and videodecoder 28 may apply quantization to the transform coefficients.Quantization generally involves a process that limits the number of bitsassociated with any given transform coefficient.

Following transform and quantization, video encoder 22 and video decoder28 may perform entropy coding on the quantized and transformed residualvideo blocks. Video encoder 22 may generate syntax elements as part ofthe encoding process to be used by video decoder 28 in the decodingprocess. Video encoder 22 may also entropy encode syntax elements andinclude syntax elements in the encoded bitstream. In general, entropycoding comprises one or more processes that collectively compress asequence of quantized transform coefficients and/or other syntaxinformation. Video encoder 22 and video decoder 28 may perform scanningtechniques on the quantized transform coefficients in order to defineone or more serialized one-dimensional vectors of coefficients fromtwo-dimensional video blocks. The scanned coefficients may then entropycoded along with any syntax information, e.g., via content adaptivevariable length coding (CAVLC), context adaptive binary arithmeticcoding (CABAC), or another entropy coding process.

In some examples, as part of the encoding process, video encoder 22 maydecode encoded video blocks in order to generate the video data that isused for subsequent prediction-based coding of subsequent video blocks.This is often referred to as a decoding loop of the encoding process,and generally mimics the decoding that is performed by a decoder device.In the decoding loop of an encoder or a decoder, filtering techniquesmay be used to improve video quality, and e.g., smooth pixel boundariesand possibly remove artifacts from decoded video. This filtering may bein-loop or post-loop. With in-loop filtering, the filtering ofreconstructed video data occurs in the coding loop, which means that thefiltered data is stored by an encoder or a decoder for subsequent use inthe prediction of subsequent image data. In contrast, with post-loopfiltering the filtering of reconstructed video data occurs out of thecoding loop, which means that unfiltered versions of the data are storedby an encoder or a decoder for subsequent use in the prediction ofsubsequent image data. The loop filtering often follows a separatedeblock filtering process, which typically applies filtering to pixelsthat are on or near boundaries of adjacent video blocks in order toremove blockiness artifacts that manifest at video block boundaries.

Efforts are currently in progress to develop a new video codingstandard, currently referred to as High Efficiency Video Coding (HEVC).The upcoming standard is also referred to as H.265. A recent draft ofthe HEVC standard, referred to as “HEVC Working Draft 3” or “WD3,” isdescribed in document JCTVC-E603, Wiegand et al., “High efficiency videocoding (HEVC) text specification draft 3,” Joint Collaborative Team onVideo Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 5thMeeting: Geneva, CH, 16-23 Mar., 2011, which is hereby incorporated byreference in its entirety. The standardization efforts are based on amodel of a video coding device referred to as the HEVC Test Model (HM).The HM presumes several capabilities of video coding devices overdevices configured to code video data according to ITU-T H.264/AVC. Forexample, whereas H.264 provides nine intra-prediction encoding modes, HMprovides as many as thirty-four intra-prediction encoding modes. Videoencoder 22 may operate on blocks of video data consistent with the HEVCstandard and HEVC Test Model.

The HEVC standard includes specific terms and block sizes for blocks ofvideo data. In particular, HEVC includes the terms largest coding unit(LCU), coding unit (CU), prediction unit (PU), and transform unit (TU).LCUs, CUs, PUs, and TUs are all video blocks within the meaning of thisdisclosure. This disclosure also uses the term block to refer to any ofa LCU, CU, PU, or TU. In HEVC, syntax elements may be defined at the LCUlevel, the CU level, the PU level and the TU level. In HEVC, an LCUrefers to the largest sized coding unit which is a largest coding unitin terms of number of pixels supported in a given situation. In general,in HEVC a CU has a similar purpose to a macroblock of H.264, except thata CU does not have a size distinction. Thus, a CU may be split intosub-CUs and an LCU may be partitioned into smaller CUs. Further, the CUsmay be partitioned into prediction units (PUs) for purposes ofprediction. A PU may represent all or a portion of the corresponding CU,and may include data for retrieving a reference sample for the PU. PUsmay have square or rectangular shapes. TUs represent a set of pixeldifference values or pixel residuals that may be transformed to producetransform coefficients, which may be quantized. Transforms are not fixedin the HEVC standard, but are defined according to transform unit (TU)sizes, which may be the same size as a given CU, or possibly smaller.

In HEVC, an LCU may be associated with a quadtree data structure.Further, in some examples residual samples corresponding to a CU may besubdivided into smaller units using a quadtree partitioning scheme whichincludes a quadtree structure known as “residual quad tree” (RQT). Ingeneral, a quadtree data structure includes one node per CU, where aroot node may correspond to the LCU. For example, CU₀ may refer to theLCU, and CU₁ through CU₄ may comprise sub-CUs of the LCU. If a CU issplit into four sub-CUs, the node corresponding to the CU includes fourleaf nodes, each of which corresponds to one of the sub-CUs. Each nodeof the quadtree data structure may provide syntax data for thecorresponding CU. For example, a node in the quadtree may include asplit flag in the CU-level syntax to indicate whether the CUcorresponding to the node is split into sub-CUs. Syntax elements for aCU may be defined recursively, and may depend on whether the CU is splitinto sub-CUs. If a CU is not split further, it is referred as a leaf-CU.In this disclosure, four sub-CUs of a leaf-CU may also be referred to asleaf-CUs although there is no explicit splitting of the originalleaf-CU. For example, if a CU at 16×16 size is not split further, thefour 8×8 sub-CUs will also be referred to as leaf-CUs although the 16×16CU was never split.

The leaf nodes or leaf-CUs of the RQT may correspond to TUs. That is, aleaf-CU may include a quadtree indicating how the leaf-CU is partitionedinto TUs. A leaf-CU may include one or more transform units (TUs). Thisdisclosure may refer to the quadtree indicating how an LCU ispartitioned as a CU quadtree and the quadtree indicating how a leaf-CUis partitioned into TUs as a TU quadtree. The root node of a TU quadtreegenerally corresponds to a leaf-CU, while the root node of a CU quadtreegenerally corresponds to an LCU. TUs of the TU quadtree that are notsplit are referred to as leaf-TUs. A split flag may indicate whether aleaf-CU is split into four transform units. Then, each transform unitmay be split further into four sub TUs. When a TU is not split further,it may be referred to as a leaf-TU.

Further, the leaf nodes or leaf-CUs may include one or more predictionunits (PUs). For example, when the PU is inter-mode encoded, the PU mayinclude data defining a motion vector for the PU. The data defining themotion vector may describe, for example, a horizontal component of themotion vector, a vertical component of the motion vector, a resolutionfor the motion vector (e.g., one-quarter pixel precision or one-eighthpixel precision), a reference frame to which the motion vector points,and/or a reference list (e.g., list 0 or list 1) for the motion vector.Data for the leaf-CU defining the PU(s) may also describe, for example,partitioning of the CU into one or more PUs. Partitioning modes maydiffer depending on whether the CU is uncoded, intra-prediction modeencoded, or inter-prediction mode encoded. For intra coding, a PU may betreated the same as a leaf transform unit described below.

Generally, for intra coding in HEVC, all the leaf-TUs belonging to aleaf-CU share the same intra prediction mode. That is, the sameintra-prediction mode is generally applied to calculate predicted valuesfor all TUs of a leaf-CU. For intra coding, video encoder 22 maycalculate a residual value for each leaf-TU using the intra predictionmode, as a difference between the portion of the predictive valuescorresponding to the TU and the original block. The residual value maybe transformed, quantized, and scanned. For inter coding in HEVC, videoencoder 22 may perform prediction at the PU level and may calculate aresidual for each PU. The residual values corresponding to a leaf-CU maybe transformed, quantized, and scanned. For inter coding, a leaf-TU maybe larger or smaller than a PU. For intra coding, a PU may be collocatedwith a corresponding leaf-TU. In some examples, the maximum size of aleaf-TU may be the size of the corresponding leaf-CU.

As described above, the HEVC standard allows for transformationsaccording to transformation units (TUs), which may be different fordifferent CUs. The TUs are typically sized based on the size of PUswithin a given CU defined for a partitioned LCU, although this may notalways be the case. The TUs are typically the same size or smaller thanthe PUs. Pixel difference values associated with the TUs may betransformed to produce transform coefficients, which may be quantized.Further, quantization may be applied according to a quantizationparameter (QP) defined at the LCU level. Accordingly, the same level ofquantization may be applied to all transform coefficients in the TUsassociated with different PUs of CUs within an LCU. However, rather thansignal the QP itself, a change or difference (i.e., a delta) in the QPmay be signaled with the LCU to indicate the change in QP relative tothat of a previous LCU.

Video encoder 22 may perform video encoding of pictures, frames, slices,portions of frames, groups of pictures, or other video data by usingLCUs, CUs, PUs and TUs defined according to the HEVC standard as unitsof video coding information.

For example, video encoder 22 may encode one or more pictures of videodata comprising largest coding units (LCUs), wherein the LCUs arepartitioned into a set of block-sized coded units (CUs) according to aquadtree partitioning scheme. Video encoder 22 and video decoder 28 mayuse CUs that have varying sizes consistent with the HEVC standard. Forexample, video encoder 22 may use possible CU sizes of 64×64, 32×32,16×16, 8×8 and 4×4 pixels. For a given video sequence, video encoder 22may use a maximum CU size of 64×64 pixels for all pictures in the videosequence while some pictures in the video sequence may be encoded usinga smallest possible CU size of 4×4 pixels while other pictures in thevideo sequence may be encoded using a smallest CU size of 8×8 pixels.

As described above, references in this disclosure to a CU may refer to alargest coding unit of a picture or a sub-CU of an LCU. Video encoder 22may split an LCU into sub-CUs, and each sub-CU may be further split intosub-CUs. Video encoder 22 may include syntax data for a bitstreamdefined to indicate a maximum number of times an LCU is split. Thenumber of time a LCU is split may be referred to as CU depth.

Further, video encoder 22 may also define a smallest coding unit (SCU)for each picture in a video sequence. An SCU may refer to the smallestcoding unit size used to code a picture when several possible CU sizesare available. For example, video encoder 22 may be configured to useone of possible CU sizes 64×64, 32×32, 16×16, 8×8 and 4×4 pixels toencode pictures in a video sequence. In one example, all pictures in thevideo sequence may be encoded using the same SCU size, e.g., 4×4 pixelsor 8×8 pixels. In other examples, some pictures in the video sequencemay be encoded using a SCU size of 4×4 pixels while other pictures inthe video sequence may be encoded using a SCU size of 8×8 pixels. Thus,in this example, pictures in the video sequence may have respective SCUsof 4×4 pixels and 8×8 pixels, i.e., the SCU size may change amongframes. Video encoder 22 may determine a minimum SCU or a maximum SCUfor a video sequence. In this example, the minimum SCU would be 4×4,while the maximum SCU would be 8×8.

Video encoder 22 may include various levels of syntax data within abitstream that defines sizes of LCUs, CUs, PUs, TUs, and SCUs. Forexample, video encoder 22 may signal the size of LCU using sequencelevel syntax.

In addition to signaling the size of CUs used to encode a picture in avideo sequence, video encoder 22 may use various techniques to signalthe size of a picture in the video sequence. The size of a pictureassociated with a video sequence may be equal to a picture size of adecoded picture stored in a decoded picture buffer (DPB). Pictures mayhave a unit size, such as a block of a selected height and width. Thepicture size may be picture sizes supported by HEVC or another videostandard e.g., picture sizes may include 320×240, 1920×1080, and7680×4320. Further, video encoder 22 may signal syntax elements forcoding texture view components in a slice header. Thus, video encoder 22may signal the size of a picture associated with a video sequence and/ora minimum smallest coding unit size associated with the video sequenceusing various syntax elements. Likewise, video decoder 28 may obtainvarious syntax elements indicating the size of a picture associated witha coded video sequence and/or a minimum smallest coding unit sizeassociated with the coded video sequence and use such syntax elements indecoding the coded video sequence. In one example, video encoder 22 maysignal the minimum smallest coding unit size and the size of a pictureassociated with a video sequence in sequence level syntax informationwherein the picture size is a multiple of the minimum smallest codingunit size. In one example, video decoder 28 may obtain a coded videosequence including one or more coded pictures and a minimum smallestcoding unit size for the video sequence in sequence level syntaxinformation. Video decoder 28 may decode the coded pictures in the codedvideo sequence and store the decoded pictures in a decoded picturebuffer with a picture size equal to a multiple of the minimum smallestcoding unit size.

In some video compression techniques that utilize fixed sizedmacroblocks (e.g., 16×16), the size of a picture may be signaled in theunit of macroblocks. When the width or height is not equal to a multipleof the fixed sized macroblock, a cropping window may be used. Forexample, a 1920×1080 picture can be coded as 1920×1088 in the bitstream,but the cropping window signals the real window to make the picture tobe displayed as 1920×1080. In other techniques, the size of a picturemay be signaled in the unit of pixel. One example of signaling the sizeof a picture in the unit of pixel is provided by the HEVC standard.

In one example, video encoder 22 and video decoder 28 may code videodata where a size of a coded picture in a picture sequence is defined interms of a particular type of coded unit (CU). The particular types ofcoded blocks may be a LCU, a SCU, a minimum smallest CU, or a maximumsmallest CU of each picture in the sequence of pictures, as describedabove. More specifically, video encoder 22 may indicate a unit used tosignal a size of a picture relative to a size of a coding unit (CU) ofthe picture. In one example, the unit may be equal to a size of thesmallest CU size that is allowed in the coded video sequence. In somecases, the smallest CU size is the same for all pictures in the videosequence. In other cases, the smallest CU size of each picture in thevideo sequence may be different. In that case, the smallest CU size foreach picture in a video sequence may not be smaller than the smallestpossible CU size for the video sequence. In another example, the unitindicated by video encoder 22 may be equal to a size of the largestcoding unit (LCU) for a group of pictures. In some examples, a croppingwindow may be applied to the picture by video encoder 22 or videodecoder 28 to reduce the size of the picture. The cropping window maycrop at least one of a right side or a bottom side of a picture, forexample.

In another example, video encoder 22 may signal a picture size relativeto an aligned CU (ACU) size. An aligned CU size may be a CU size that isused to specify a picture size of a decoded picture stored in a decodedpicture buffer (DPB). Such a picture size may have a width and heightboth as multiplications of the width and height of the aligned CU size.Similarly, the picture height may be a multiplication of a height of analigned CU. The size (width and height) of the aligned CU can besignaled in the same way as in the other alternatives. For example videoencoder 22 may signal an aligned CUs at various levels of syntax.

An ACU size may defined accord to the following examples: if allpictures in a video sequence have the same SCU size, the ACU may bedefined as the SCU size. If, on the other hand, pictures in the videosequence have different SCU sizes, the ACU may be defined as the maximumor minimum SCU size among all pictures. Regardless of how the ACU isdefined, the ACU size may be explicitly signaled by video encoder 22 ina sequence parameter set (SPS) or picture parameter set (PPS) associatedwith the video sequence. In some cases, the ACU size may be restrictedsuch that it is equal to or less than the LCU size for a video sequenceand equal to or larger than a SCU size for a video sequence.

Further, in some examples, video encoder 22 may signal a picture size ina unit of LCU or a unit of SCU. In some examples, the unit used tosignal a size of a coded picture may be signaled in a SPS. This unit maybe equal to the size of a smallest CU size that is allowed for the codedvideo sequence. In the PPS, the relative size of the smallest CU sizefor pictures referring to this PPS may be signaled by video encoder 22.In the case where all pictures in a video sequence have the same SCUsize, additional signaling of the relative size of the smallest CU maynot be necessary in the PPS. In the case where the smallest CU sizevaries between pictures in a video sequence, a relative smallest CU sizefor a portion of the pictures in the video sequence may be signaled inthe PPS where the relative smallest CU size is larger than the minimumsmallest CU for the video sequence. The relative smallest CU size may besignaled in the PPS as a difference between the relative smallest CUsize for the portion of the pictures and the minimum smallest CU sizefor the video sequence.

Alternatively, the picture size can be signaled by video encoder 22 witha unit of LCU in SPS. However, since the cropping window can be furthersignaled by video encoder 22, using the cropping window may help videodecoder identify the picture size, as long as the ACU size is known.

Alternatively, when the SCU size varies for the pictures in the videosequence, the unit may be equal to the size of a maximum smallest CUsize allowed in pictures in the coded video sequence. In an examplewhere the maximum CU size is 64×64 pixels, and some pictures have CUsize of 4×4 pixels while and others have a smallest CU size of 8×8pixels, the unit of the picture size may be 8×8 pixels. In this example,if a picture has a size of 64×65 pixels, a picture size would assignaled by video encoder 22 as 8 times 8 pixels by 9 times 8 pixels.Pixels in a picture that exceeded the 64×65 pixel size may be croppedusing frame cropping syntax elements.

In some examples, a maximum CU size is 64×64 pixels and some pictureshave a smallest possible CU size of 4×4 pixels while others have asmallest CU size of 8×8 pixels. For this example, if the particular typeof CU is the minimum possible smallest CU, the unit for the picture sizeis of 4×4 pixels. Continuing with the example, if the particular type ofCU is the maximum possible smallest CU, the unit for the picture size isof 8×8 pixels.

Tables 1-7 below provide example syntax that may be implemented by videoencoder 22 and video decoder 28 to perform techniques described herein.Example syntax may be implemented by video encoder 22 and video decoder28 using hardware, software, firmware, or any combination thereof.

As described above, video encoder 22 may signal the unit used to signalthe size of the coded picture in the SPS (Sequence Parameter set). Inone example, this unit may be equal to the size of the smallest CU sizethat is allowed in the coded video sequence. In this example, if thesmallest CU size may vary in a coded bitstream between pictures in agroup of pictures, the smallest CU size shall not be smaller than thesize of this unit. Table 1 below provides an example of SPS raw bytesequence payload (RBSP) syntax used to signal the minimum smallest CUsize for the coded picture in the video sequence. In the pictureparameter set (PPS), the relative size of the smallest CU size forpictures referring to this PPS may be signaled.

TABLE 1 Sequence parameter set RBSP syntax De- seq_parameter_set_rbsp( ){ scriptor profile_idc u(8) reserved_zero_8bits /* equal to 0 */ u(8)level_idc u(8) seq_parameter_set_id ue(v) max_temporal_layers_minus1u(3)

bit_depth_luma_minus8 ue(v) bit_depth_chroma_minus8 ue(v)pcm_bit_depth_luma_minus1 u(4) pcm_bit_depth_chroma_minus1 u(4)log2_max_frame_num_minus4 ue(v) pic_order_cnt_type ue(v) if(pic_order_cnt_type = = 0 ) log2_max_pic_order_cnt_lsb_minus4 ue(v) elseif( pic_order_cnt_type = = 1 ) { delta_pic_order_always_zero_flag u(1)offset_for_non_ref_pic se(v) num_ref_frames_in_pic_order_cnt_cycle ue(v)for( i = 0; i < num_ref_frames_in_pic_order_cnt_cycle; i++ )offset_for_ref_frame[ i ] se(v) } max_num_ref_frames ue(v)gaps_in_frame_num_value_allowed_flag u(1) log2_ 

 max_coding_block_size_minus3 ue(v)log2_diff_max_pic_alligned_min_coding_block_size ue(v)

log2_min_transform_block_size_minus2 ue(v)log2_diff_max_min_transform_block_size ue(v)log2_min_pcm_coding_block_size_minus3 ue(v)max_transform_hierarchy_depth_inter ue(v)max_transform_hierarchy_depth_intra ue(v)chroma_pred_from_luma_enabled_flag u(1) loop_filter_across_slice_flagu(1) sample_adaptive_offset_enabled_flag u(1)adaptive_loop_filter_enabled_flag u(1) pcm_loop_filter_disable_flag u(1)cu_qp_delta_enabled_flag u(1) temporal_id_nesting_flag u(1)rbsp_trailing_bits( ) }

In Table 1, syntax element log2_max_coding_block_size_minus3 may specifythe maximum size of a coding block. A variable Log2MaxCUSize may be setequal to: log2_max_coding_block_size_minus3+3.

In Table 1, syntax element

log2_diff max_pic_alligned_min_coding_block_size may specify thedifference between the minimum size of a coding block in the whole codedvideo sequence and the maximum size of a coding block. In some cases, agroup of pictures may be defined such that a picture in a group ofpictures shall not have a smallest coding CU size smaller than thedifference value.

A variable Log2SeqMinCUSize may be set equal to

log2_minmax_coding_block_size_minus3+3−log2_diff_max_pic_alligned_min_coding_block_size.

This value may range from 0 to log2 max coding block size minus3.Variables Log2MaxCUSize and Log2SeqMinCUSize may be used be videoencoder 22 and video decoder 28 to process for video coding.

It should be noted that Table 1 includes syntax elementspic_width_in_luma_samples, pic_height_in_luma_samples, andlog2_min_coding_block_size_minus3, which appear in Table 1 with astrikethrough. These syntax elements represent an alternative examplewhere the size of a picture may be signaled by the video encoder 22 inthe unit of pixels. In one example, where a picture size has a width andheight both as multiplications of the width and height of the ACU size,where the ACU size is equal to the minimum SCU of a video sequence, asdescribed above, video decoder 28 may determine whether a bitstream isconforming based on whether a condition the values ofpic_width_in_luma_samples, pic_height_in_luma_samples, are integermultiples of log2_min_coding_block_size_minus3.

Table 2, below, provides another example of a SPS RBSP syntax, inaccordance with the techniques that may be performed by video encoder 22and video decoder 28.

TABLE 2 Sequence parameter set RBSP syntax De- seq_parameter_set_rbsp( ){ scriptor profile_idc u(8) reserved_zero_8bits /* equal to 0 */ u(8)level_idc u(8) seq_parameter_set_id ue(v) max_temporal_layers_minus1u(3) pic_width_in_alligned_scu ue(v) pic_height_in_alligned_scu ue(v)bit_depth_luma_minus8 ue(v) bit_depth_chroma_minus8 ue(v)pcm_bit_depth_luma_minus1 u(4) pcm_bit_depth_chroma_minus1 u(4)log2_max_frame_num_minus4 ue(v) pic_order_cnt_type ue(v) if(pic_order_cnt_type = = 0 ) log2_max_pic_order_cnt_lsb_minus4 ue(v) elseif( pic_order_cnt_type = = 1 ) { delta_pic_order_always_zero_flag u(1)offset_for_non_ref_pic se(v) num_ref_frames_in_pic_order_cnt_cycle ue(v)for( i = 0; i < num_ref_frames_in_pic_order_cnt_cycle; i++ )offset_for_ref_frame[ i ] se(v) } max_num_ref_frames ue(v)gaps_in_frame_num_value_allowed_flag u(1)log2_max_coding_block_size_minus3 ue(v)log2_diff_max_pic_alligned_min_coding_block_size ue(v)log2_min_transform_block_size_minus2 ue(v)log2_diff_max_min_transform_block_size ue(v)log2_min_pcm_coding_block_size_minus3 ue(v)max_transform_hierarchy_depth_inter ue(v)max_transform_hierarchy_depth_intra ue(v)chroma_pred_from_luma_enabled_flag u(1) loop_filter_across_slice_flagu(1) sample_adaptive_offset_enabled_flag u(1)adaptive_loop_filter_enabled_flag u(1) pcm_loop_filter_disable_flag u(1)cu_qp_delta_enabled_flag u(1) temporal_id_nesting_flag u(1)rbsp_trailing_bits( ) }

According to Table 2, a width and height of a picture may be indicatedby video encoder 22 relative to a width and height of an aligned CU. Asdescribed above, an aligned CU may be a CU that is used by video encoder22 and video decoder 28 to specify a picture size. That is, the picturewidth may be a multiplication of a width of an aligned CU. As describedabove, the aligned CU size may be a size used to specify a picture sizeof a decoded picture stored in a decoded picture buffer (DPB). In someexamples, a picture may contain one or more complete aligned CUs. Insome examples, the aligned CU is an aligned smallest CU (SCU).

Table 2 specifies a height of a picture as pic_height_in_ alligned_scuand a width of the picture as pic_width_in_alligned_scu.pic_width_in_alligned_cu may specify the width of the pictures in thecoded video sequence in a unit of aligned CUs. pic_height_in_alligned_cumay specify the height of the pictures in the coded video sequence in aunit of aligned CUs.

log2_max_coding_block_size_minus3 may specify the maximum size of acoding block. A variable Log2MaxCUSize may be set equal tolog2_max_coding_block_size_minus3+3.

log2_diff max_pic_alligned_min_coding_block_size may specify adifference between a minimum size of a coding block in the whole codedvideo sequence and a maximum size of a coding block. In some examples,any picture may not have a smallest coding CU size smaller than that.

Table 3 below provides additional syntax elements for PPS RBSP that maybe implemented by video encoder 22 and video decoder 28 in conjunctionwith SPS RBSP provided in either Table 1 or Table 2.

TABLE 3 Picture parameter set RBSP syntax De- pic_parameter_set_rbsp( ){ scriptor pic_parameter_set_id ue(v) seq_parameter_set_id ue(v)entropy_coding_mode_flag u(1) num_temporal_layer_switching_point_flagsue(v) for( i = 0; i < num_temporal_layer_switching_point_flags; i++ )temporal_layer_switching_point_flag[ i ] u(1)num_ref_idx_l0_default_active_minus1 ue(v)num_ref_idx_l1_default_active_minus1 ue(v) pic_init_qp_minus26 /*relative to 26 */ se(v) pic_scu_size_delta ue(v)constrained_intra_pred_flag u(1) slice_granularity u(2)shared_pps_info_enabled_flag u(1) if( shared_pps_info_enabled_flag ) if(adaptive_loop_filter_enabled_flag ) alf_param( ) if(cu_qp_delta_enabled_flag ) max_cu_qp_delta_depth u(4)rbsp_trailing_bits( ) }

In Table 3, pic_scu_size_delta may specify a minimum size of a codingunit of the pictures referring to this picture parameter set. This valuemay range from 0 to log2_diff_max_pic alligned min coding block size.

The variable Log2MinCUSize may be set equal toLog2SeqMinCUSize+pic_scu_size_delta. Alternatively, if the size of thealigned CU is a maximum of the smallest CU sizes of all the pictures,the variable Log2MinCUSize may be set equal toLog2SeqMinCUSize−pic_scu_size_delta. Alternatively, if the aligned CUsize can be of any possible CU size, in this case, pic_scu_size_deltacan be a signed value (se(v)) and the variable Log2MinCUSize may be setequal to Log2SeqMinCUSize−pic_scu_size_delta.

In addition to the examples descried above, in one example, an LCU sizefor a video sequence may be defined as N by N and the ACU size, selectedaccording to one of the examples described above, may be defined as M byM. In this case, the picture size may be signaled by video encoder 22 inthe unit of LCU size may be defined as WL by HL. Thus, the picture sizewith respect to the aligned CU size may be derived by video decoder 28according to the following equation: (WL*N−crop_right_offset+M−1)/M*M by(HL*N−crop_bottom_offset+M−1)/M*M, wherein crop right offset andcrop_bottom_offset are signaled by video encoder 22 in the croppingwindow and are the numbers of pixels cropped from the right and bottomboundary, respectively. It should be noted that WL may be the value ofthe pic_width_in_LCU and WH is the value of pic_height_in_LCU in theTable 5 below. It should also be noted that the operations (e.g.,divisions) in the equation above may be integer calculations.

Table 4 below provides another example of additional syntax elements forseq parameter_set_rbsp( ) In this example, the sizes of one or morepictures may be signaled by video encoder 22 relative to a size of alargest coding unit (LCU). The sizes of the one or more pictures may besignaled by video encoder 22 in the sequence parameter set, for example.

The picture size may also be signaled by video encoder 22 with a numright offset ACU and num_bottom_offset_ACU, so the picture size is(WL*N−M*num_right _offset_ACU) by (HL*N−M*num_bottom_offset_ACU). Thesetwo parameters can be signaled in SPS or PPS. The decoded picture is tobe stored in the decoded picture buffer with a picture with respect tothe aligned CU, which is (WL*N−num crop acu_right*M) by(HL*N−num_crop_acu_right*M).

In some examples, a cropping window may be further signaled by videoencoder 22. A cropping window may define at least a right side or abottom side of a picture or other to be cropped. However, since thecropping window can be further signaled, the cropping window may be usedto identifying the picture size when the aligned CU size is known.

TABLE 4 Sequence parameter set RBSP syntax De- seq_parameter_set_rbsp( ){ scriptor profile_idc u(8) reserved_zero_8bits /* equal to 0 */ u(8)level_idc u(8) seq_parameter_set_id ue(v) max_temporal_layers_minus1u(3) pic_width_in_LCU ue(v) pic_height_in_LCU ue(v) num_crop_acu_rightue(v) num_crop_acu_bottom ue(v) bit_depth_luma_minus8 ue(v)bit_depth_chroma_minus8 ue(v) pcm_bit_depth_luma_minus1 u(4)pcm_bit_depth_chroma_minus1 u(4) log2_max_frame_num_minus4 ue(v)pic_order_cnt_type ue(v) if( pic_order_cnt_type = = 0 )log2_max_pic_order_cnt_lsb_minus4 ue(v) else if( pic_order_cnt_type = =1 ) { delta_pic_order_always_zero_flag u(1) offset_for_non_ref_pic se(v)num_ref_frames_in_pic_order_cnt_cycle ue(v) for( i = 0; i <num_ref_frames_in_pic_order_cnt_cycle; i++ ) offset_for_ref_frame[ i ]se(v) } max_num_ref_frames ue(v) gaps_in_frame_num_value_allowed_flagu(1) log2_max_coding_block_size_minus3 ue(v)log2_diff_max_pic_alligned_min_coding_block_size ue(v)log2_min_transform_block_size_minus2 ue(v)log2_diff_max_min_transform_block_size ue(v)log2_min_pcm_coding_block_size_minus3 ue(v)max_transform_hierarchy_depth_inter ue(v)max_transform_hierarchy_depth_intra ue(v)chroma_pred_from_luma_enabled_flag u(1) loop_filter_across_slice_flagu(1) sample_adaptive_offset_enabled_flag u(1)adaptive_loop_filter_enabled_flag u(1) pcm_loop_filter_disable_flag u(1)cu_qp_delta_enabled_flag u(1) temporal_id_nesting_flag u(1)frame_cropping_flag u(1) if( frame_cropping_flag ) {frame_crop_left_offset ue(v) frame_crop_right_offset ue(v)frame_crop_top_offset ue(v) frame_crop_bottom_offset ue(v) }rbsp_trailing_bits( ) }

In the example show in Table 4, a size of a picture in terms of widthand height are given in terms of a largest coding unit (LCU). That is,pic_width_in_LCU may specify a size in pixels of one or more picturesrelative to an LCU. Similarly, pic_height_in_LCU may specify a size inpixels of one or more pictures relative to an LCU. The syntax elementnum_crop_acu_right may be signaled in the cropping window and define anumber of pixels to be cropped on a right side of a picture or othervideo block. Similarly, the syntax element num_crop_acu_bottom may besignaled in the cropping window and define a number of pixels to becropped on a bottom side of a picture or other video block. In otherexamples, other sides of cropping windows are signaled.

An example is provided for illustrative purposes only. In this example,the LCU size is N by N and the aligned CU size is M by M. The picturesize is signaled in terms of a unit of LCU size is given as WL by HL. Inthis example, WL is the value of pic_width_in_LCU and HL is the value ofpic_height_in_LCU. Crop_right_offset may define a number of pixels tocrop on a right side, and may be equal to num_crop_acu_right.Crop_bottom_offset may define a number of pixels to crop on a bottomside, and may be equal to num_crop_acu_bottom.

From the picture size relative to the LCU size and the aligned CU size,the picture size with respect to the aligned CU (ACU) size can bedetermined from the following equations

$\begin{matrix}{{{width}\mspace{14mu} {of}\mspace{14mu} {picture}\mspace{14mu} {relative}\mspace{14mu} {to}\mspace{14mu} {ACU}} = {\frac{( {{{WL}*N} - {{crop\_ right}{\_ offset}} + M - 1} )}{M}M}} & (1) \\{{{height}\mspace{14mu} {of}\mspace{14mu} {picture}\mspace{14mu} {relative}\mspace{14mu} {to}\mspace{14mu} {ACU}} = {\frac{( {{{HL}*N} - {{crop\_ bottom}{\_ offset}} + M - 1} )}{M}M}} & (2)\end{matrix}$

It should be note that the operations in equations 1 and 2 may beinteger calculations.

Table 5 provides yet another example of additional syntax elements forpic_parameter set rbsp( ). In this example, at least one ofnum_right_offset_ACU and num_bottom_offset_ACU may be signaled. Table 6shows num_right_offset_ACU and num_bottom_offset_ACU being signaled inthe SPS, however, these values may be signaled elsewhere. For example,at least one of num_right_offset_ACU and num_bottom_offset_ACU may besignaled in a PPS.

TABLE 5 Sequence parameter set RBSP syntax De- seq_parameter_set_rbsp( ){ scriptor profile_idc u(8) reserved_zero_8bits /* equal to 0 */ u(8)level_idc u(8) seq_parameter_set_id ue(v) max_temporal_layers_minus1u(3) pic_width_in_LCU ue(v) pic_height_in_LCU ue(v) num_crop_acu_rightue(v) num_crop_acu_bottom ue(v) bit_depth_luma_minus8 ue(v)bit_depth_chroma_minus8 ue(v) pcm_bit_depth_luma_minus1 u(4)pcm_bit_depth_chroma_minus1 u(4) log2_max_frame_num_minus4 ue(v)pic_order_cnt_type ue(v) if( pic_order_cnt_type = = 0 )log2_max_pic_order_cnt_lsb_minus4 ue(v) else if( pic_order_cnt_type = =1 ) { delta_pic_order_always_zero_flag u(1) offset_for_non_ref_pic se(v)num_ref_frames_in_pic_order_cnt_cycle ue(v) for( i = 0; i <num_ref_frames_in_pic_order_cnt_cycle; i++ ) offset_for_ref_frame[ i ]se(v) } max_num_ref_frames ue(v) gaps_in_frame_num_value_allowed_flagu(1) log2_max_coding_block_size_minus3 ue(v)log2_diff_max_pic_alligned_min_coding_block_size ue(v)log2_min_transform_block_size_minus2 ue(v)log2_diff_max_min_transform_block_size ue(v)log2_min_pcm_coding_block_size_minus3 ue(v)max_transform_hierarchy_depth_inter ue(v)max_transform_hierarchy_depth_intra ue(v)chroma_pred_from_luma_enabled_flag u(1) loop_filter_across_slice_flagu(1) sample_adaptive_offset_enabled_flag u(1)adaptive_loop_filter_enabled_flag u(1) pcm_loop_filter_disable_flag u(1)cu_qp_delta_enabled_flag u(1) temporal_id_nesting_flag u(1)frame_cropping_flag u(1) if( frame_cropping_flag ) {frame_crop_left_offset ue(v) frame_crop_right_offset ue(v)frame_crop_top_offset ue(v) frame_crop_bottom_offset ue(v) }rbsp_trailing_bits( ) }

The value num_crop_acu_right in Table 5 may specify a number of alignedCU sizes to be cropped from the LCU aligned picture from the right. Thecropped picture may be stored in the DPB. The value num_crop_acu_bottommay specify a number of aligned CU sizes to be cropped from the LCUaligned picture from the bottom, to get the picture to be stored in theDPB.

In an example corresponding with Table 5, the picture size can also besignaled with a num_right_offset_ACU and num_bottom_offset_ACU. Thepicture size may be determined as:

width of picture relative to ACU=WL(N−M)(num_right_offset_(—) ACU)  (3)

height of picture relative to ACU=WL(N−M)(num_bottom_offset_(—)ACU)  (4)

A decoded picture that may be stored in a decoded picture buffer with apicture size with respect to the aligned CU may be given as follows:

(WL*N−num_crop_acu_right*M) by (HL*N−num_crop_acu_bottom*M)  (5)

Thus, a size (height and width in pixels) of the aligned CU may besignaled in the same way as in the examples above with respect to thepicture size. For example, if all pictures have the same smallest CU(SCU) size, the size of the aligned CU may be the SCU size. As anotherexample, if the pictures have different SCU sizes, the aligned CU sizemay be a maximum or a minimum SCU size among all the pictures. Thealigned CU size may be signaled explicitly in at least one of the SPS orin the PPS. The aligned CU size may be equal or less than a size of theLCU and equal or larger than the size of the SCU.

Table 6 below provides one example of frame cropping syntax that may beused in conjunction with any of the example embodiments described above.In one example, the cropping window may be in sequence parameter set andfollow the same semantics as those in H.264/AVC).

TABLE 6 Frame Cropping Syntax frame_cropping_flag 0 u(1) if(frame_cropping_flag ) { frame_crop_left_offset 0 ue(v)frame_crop_right_offset 0 ue(v) frame_crop_top_offset 0 ue(v)frame_crop_bottom_offset 0 ue(v) }

FIG. 2 is a block diagram illustrating an example video encoder that maybe configured to perform the techniques described in this disclosure.Video encoder 50 may be configured to determine a smallest coding unitsize for each of a plurality of pictures defining a video sequence,wherein a smallest coding unit size is selected from a plurality ofpossible coding unit sizes. Further, video encoder 50 may be configuredto determine a minimum coding unit size for the video sequence based onthe smallest coding unit determined for each of the plurality picturesdefining the video sequence. In addition, video encoder 50 may beconfigured to determine a picture size associated with the videosequence, wherein the picture size associated with the video sequence isan multiple of the minimum coding unit size value. Moreover, videoencoder 50 may be configured to signal the minimum coding unit sizevalue in sequence level syntax information.

Video encoder 50 may correspond to video encoder 22 of device 20, or avideo encoder of a different device. As shown in FIG. 2, video encoder50 may include a prediction encoding module 32, quadtree partitionmodule 31, adders 48 and 51, and a memory 34. Video encoder 50 may alsoinclude a transform module 38 and a quantization module 40, as well asan inverse quantization module 42 and an inverse transform module 44.Video encoder 50 may also include an entropy coding module 46, and afilter module 47, which may include deblock filters and post loop and/orin loop filters. The encoded video data and syntax information thatdefines the manner of the encoding may be communicated to entropyencoding module 46, which performs entropy encoding on the bitstream.

As shown in FIG. 2, prediction encoding module 32 may support aplurality of different coding modes 35 used in the encoding of videoblocks. Prediction encoding module 32 may also comprise a motionestimation (ME) module 36 and a motion compensation (MC) module 37.

During the encoding process, video encoder 50 receives input video data.Quadtree partition module 31 may partition units of video data intosmaller units. For example, quadtree partition module 31 may break anLCU into smaller CU's and PU's according to HEVC partitioning describedabove. Prediction encoding module 32 performs predictive codingtechniques on video blocks (e.g. CUs and PUs). For inter coding,prediction encoding module 32 compares CUs or PUs to various predictivecandidates in one or more video reference frames or slices (e.g., one ormore “list” of reference data) in order to define a predictive block.For intra coding, prediction encoding module 32 generates a predictiveblock based on neighboring data within the same video frame or slice.Prediction encoding module 32 outputs the prediction block and adder 48subtracts the prediction block from the CU or PU being coded in order togenerate a residual block. At least some video blocks may be coded usingadvanced motion vector prediction (AMVP) described in HEVC.

In some cases, prediction encoding module may include a rate-distortion(R-D) module that compares coding results of video blocks (e.g., CUs orPUs) in different modes. In this case, prediction encoding module 32 mayalso include a mode selection module to analyze the coding results interms of coding rate (i.e., coding bits required for the block) anddistortion (e.g., representing the video quality of the coded blockrelative to the original block) in order to make mode selections forvideo blocks. In this way, the R-D module may provide analysis of theresults of different modes to allow the mode selection module to selectthe desired mode for different video blocks.

Referring again to FIG. 2, after prediction encoding module 32 outputsthe prediction block, and after adder 48 subtracts the prediction blockfrom the video block being coded in order to generate a residual blockof residual pixel values, transform module 38 applies a transform to theresidual block. The transform may comprise a discrete cosine transform(DCT) or a conceptually similar transform such as that defined by theITU H.264 standard or the HEVC standard. So-called “butterfly”structures may be defined to perform the transforms, or matrix-basedmultiplication could also be used. In some examples, consistent with theHEVC standard, the size of the transform may vary for different CUs,e.g., depending on the level of partitioning that occurs with respect toa given LCU. Transform units (TUs) may be defined in order to set thetransform size applied by transform module 38. Wavelet transforms,integer transforms, sub-band transforms or other types of transformscould also be used. In any case, transform module 38 applies thetransform to the residual block, producing a block of residual transformcoefficients. The transform, in general, may convert the residualinformation from a pixel domain to a frequency domain.

Quantization module 40 then quantizes the residual transformcoefficients to further reduce bit rate. Quantization module 40, forexample, may limit the number of bits used to code each of thecoefficients. In particular, quantization module 40 may apply the deltaQP defined for the LCU so as to define the level of quantization toapply (such as by combining the delta QP with the QP of the previous LCUor some other known QP). After quantization is performed on residualsamples, entropy coding module 46 may scan and entropy encode the data.

CAVLC is one type of entropy coding technique supported by the ITU H.264standard and the emerging HEVC standard, which may be applied on avectorized basis by entropy coding module 46. CAVLC uses variable lengthcoding (VLC) tables in a manner that effectively compresses serialized“runs” of coefficients and/or syntax elements. CABAC is another type ofentropy coding technique supported by the ITU H.264 standard or the HEVCstandard, which may be applied on a vectorized basis by entropy codingmodule 46. CABAC may involve several stages, including binarization,context model selection, and binary arithmetic coding. In this case,entropy coding module 46 codes coefficients and syntax elementsaccording to CABAC. Many other types of entropy coding techniques alsoexist, and new entropy coding techniques will likely emerge in thefuture. This disclosure is not limited to any specific entropy codingtechnique.

Following the entropy coding by entropy encoding module 46, the encodedvideo may be transmitted to another device or archived for latertransmission or retrieval. The encoded video may comprise the entropycoded vectors and various syntax information. Such information can beused by the decoder to properly configure the decoding process. Inversequantization module 42 and inverse transform module 44 apply inversequantization and inverse transform, respectively, to reconstruct theresidual block in the pixel domain. Summer 51 adds the reconstructedresidual block to the prediction block produced by prediction encodingmodule 32 to produce a reconstructed video block for storage in memory34. Memory 34 may include a decoded picture buffer and reconstructedvideo blocks may form a decoded picture. Prior to such storage, however,filter module 47 may apply filtering to the video block to improve videoquality. The filtering applied by filter module 47 may reduce artifactsand smooth pixel boundaries. Moreover, filtering may improve compressionby generating predictive video blocks that comprise close matches tovideo blocks being coded.

FIG. 3 is a flowchart illustrating an example technique for encodingvideo data that may be performed by video encoder 22 or video encoder50. Video encoder 20 or video encoder 50 may determine a smallest codingunit size for each of a plurality of pictures defining a video sequence(302). In some cases, a smallest coding unit size may be selected from aplurality of possible coding unit sizes. For example, the smallestcoding unit may be one of 4×4, 8×8, 16×16, 32×32 or 64×64, where 64×64is the maximum possible coding unit size. Video encoder 20 or videoencoder 50 may determine an aligned coding unit size for the videosequence from the determined smallest coding units (304). Video encoder20 of video encoder 50 may determine the aligned coding size based onthe techniques described above. Video encoder 20 or video encoder 50determine a picture size associated with the video sequence, wherein thepicture size associated with the video sequence is an multiple of thealigned coding unit size value (306). In some cases the picture sizeassociated with the video sequence may be a picture size of a decodedpicture stored in a decoded picture buffer. Video encoder 20 or videoencoder 50 may signal the aligned coding unit size value in sequencelevel syntax information (308).

FIG. 4 is a block diagram illustrating an example of a video decoder 60,which decodes a video sequence that is encoded in the manner describedherein. The techniques of this disclosure may be performed by videodecoder 60 in some examples. Video decoder 60 may be configured toobtain a coded video sequence including a first picture coded using afirst smallest coding unit size and a second picture coded using secondsmallest coding unit size. Further, video decoder 60 may be configuredto obtain a picture size of a decoded picture to be stored in a decodedpicture buffer wherein the picture size is a multiple of one of thefirst coding unit size and the second coding unit size. In addition,video decoder 60 may be configured to store the decoded picture in adecoded picture buffer.

Video decoder 60 includes an entropy decoding module 52, which performsthe reciprocal decoding function of the encoding performed by entropyencoding module 46 of FIG. 2. In particular, entropy decoding module 52may perform CAVLC or CABAC decoding, or any other type of entropydecoding used by video encoder 50. Video decoder 60 also includes aprediction decoding module 54, an inverse quantization module 56, aninverse transform module 58, a memory 62, and a summer 64. Inparticular, like video encoder 50, video decoder 60 includes aprediction decoding module 54 and a filter module 57. Predictiondecoding module 54 of video decoder 60 may include motion compensationmodule 86, which decodes inter coded blocks and possibly includes one ormore interpolation filters for sub-pixel interpolation in the motioncompensation process. Prediction decoding module 54 may also include anintra prediction module for decoding intra modes. Prediction decodingmodule 54 may support a plurality of modes 35. Filter module 57 mayfilter the output of summer 64, and may receive entropy decoded filterinformation so as to define the filter coefficients applied in the loopfiltering.

Upon receiving encoded video data, entropy decoding module 52 performsreciprocal decoding to the encoding performed by entropy encoding module46 (of encoder 50 in FIG. 2). At the decoder, entropy decoding module 52parses the bitstream to determine LCU's and the correspondingpartitioning associated with the LCU's. In some examples, an LCU or theCUs of the LCU may define coding modes that were used, and these codingmodes may include the bi-predictive merge mode. Accordingly, entropydecoding module 52 may forward the syntax information to prediction unitthat identifies the bi-predictive merge mode. Memory 62 may include adecoded picture buffer. Decoded picture buffer may store a decodedpicture. The decoded picture may be associated with a video sequencessuch that the decoder picture is referenced during prediction decoding.Syntax information may be used by video decoder 60 to determine the sizeof the decoded picture to be stored in the decoded picture bufferaccording to the techniques described herein.

FIG. 5 is a flowchart illustrating an example technique for decodingvideo data that may be performed by video decoder 28 or video decoder60. Video decoder 28 or video decoder 60 may obtain a coded videosequence including a first picture coded using a first smallest codingunit size and a second picture coded using second smallest coding unitsize (502). In one example, first picture may be coded using a smallestcoding unit size of 4×4 and second picture may be coded using a smallestcoding unit size of 8×8. Video decoder 28 or video decoder 60 may obtaina picture size of a decoded picture to be stored in a decoded picturebuffer wherein the picture size is a multiple of one of the first codingunit size, the second coding unit size or a maximum coding unitsize(504). In one example, the picture size may be 1920×1080. Videodecoder 28 or video decoder 60 may store the decoded picture in adecoded picture buffer (506). Further, video decoder 28 or video decoder60 may determine whether a bitstream including a video sequence is aconforming bitstream based on whether the obtained picture size is amultiple of the aligned coding unit size.

In one or more examples, the functions described may be implemented inhardware, software, firmware, or any combination thereof. If implementedin software, the functions may be stored on or transmitted over as oneor more instructions or code on a computer-readable medium and executedby a hardware-based processing unit. Computer-readable media may includecomputer-readable storage media, which corresponds to a tangible mediumsuch as data storage media, or communication media including any mediumthat facilitates transfer of a computer program from one place toanother, e.g., according to a communication protocol. In this manner,computer-readable media generally may correspond to (1) tangiblecomputer-readable storage media which is non-transitory or (2) acommunication medium such as a signal or carrier wave. Data storagemedia may be any available media that can be accessed by one or morecomputers or one or more processors to retrieve instructions, codeand/or data structures for implementation of the techniques described inthis disclosure. A computer program product may include acomputer-readable medium.

By way of example, and not limitation, such computer-readable storagemedia can comprise RAM, ROM, EEPROM, CD-ROM or other optical diskstorage, magnetic disk storage, or other magnetic storage devices, flashmemory, or any other medium that can be used to store desired programcode in the form of instructions or data structures and that can beaccessed by a computer. Also, any connection is properly termed acomputer-readable medium. For example, if instructions are transmittedfrom a website, server, or other remote source using a coaxial cable,fiber optic cable, twisted pair, digital subscriber line (DSL), orwireless technologies such as infrared, radio, and microwave, then thecoaxial cable, fiber optic cable, twisted pair, DSL, or wirelesstechnologies such as infrared, radio, and microwave are included in thedefinition of medium. It should be understood, however, thatcomputer-readable storage media and data storage media do not includeconnections, carrier waves, signals, or other transitory media, but areinstead directed to non-transitory, tangible storage media. Disk anddisc, as used herein, includes compact disc (CD), laser disc, opticaldisc, digital versatile disc (DVD), floppy disk and blu-ray disc wheredisks usually reproduce data magnetically, while discs reproduce dataoptically with lasers. Combinations of the above should also be includedwithin the scope of computer-readable media.

Instructions may be executed by one or more processors, such as one ormore digital signal processors (DSPs), general purpose microprocessors,application specific integrated circuits (ASICs), field programmablelogic arrays (FPGAs), or other equivalent integrated or discrete logiccircuitry. Accordingly, the term “processor,” as used herein may referto any of the foregoing structure or any other structure suitable forimplementation of the techniques described herein. In addition, in someaspects, the functionality described herein may be provided withindedicated hardware and/or software modules configured for encoding anddecoding, or incorporated in a combined codec. Also, the techniquescould be fully implemented in one or more circuits or logic elements.

The techniques of this disclosure may be implemented in a wide varietyof devices or apparatuses, including a wireless handset, an integratedcircuit (IC) or a set of ICs (e.g., a chip set). Various components,modules, or units are described in this disclosure to emphasizefunctional aspects of devices configured to perform the disclosedtechniques, but do not necessarily require realization by differenthardware units. Rather, as described above, various units may becombined in a codec hardware unit or provided by a collection ofinteroperative hardware units, including one or more processors asdescribed above, in conjunction with suitable software and/or firmware.

Various aspects of the disclosure have been described. These and otheraspects are within the scope of the following claims.

1. A method of encoding video data comprising: determining a smallestcoding unit size for each of a plurality of pictures defining a videosequence, wherein a smallest coding unit size is selected from aplurality of possible coding unit sizes including a maximum possiblecoding unit size; determining an aligned coding unit size for the videosequence based on the plurality of possible coding unit sizes;determining a picture size associated with the video sequence, whereinthe picture size associated with the video sequence is an multiple ofthe aligned coding unit size; and signaling the aligned coding unit sizevalue in sequence level syntax information.
 2. The method of claim 1,wherein the aligned coding unit size is the maximum possible coding unitsize.
 3. The method of claim 2, wherein the plurality of possible codingunit sizes includes a maximum coding unit size of 64×64 pixels.
 4. Themethod of claim 1, wherein determining a smallest coding unit size foreach of the plurality of pictures includes determining a first smallestcoding unit size of 4×4 pixels for a first picture and determining asecond smallest coding unit size of 8×8 pixels for a second picture; andwherein the aligned coding unit size for the video sequence is 4×4pixels.
 5. The method of claim 1, wherein determining a smallest codingunit size for each of the plurality of pictures includes determining afirst smallest coding unit size of 4×4 pixels for a first picture anddetermining a second smallest coding unit size of 8×8 pixels for asecond picture; and wherein the aligned coding unit size for the videosequence is 8×8 pixels.
 6. The method of claim 1, wherein the picturesize specifies a picture size of a decoded picture stored in a decodedpicture buffer.
 7. A device configured to encode video data comprising:means for determining a smallest coding unit size for each of aplurality of pictures defining a video sequence, wherein a smallestcoding unit size is selected from a plurality of possible coding unitsizes including a maximum possible coding unit size; means fordetermining an aligned coding unit size for the video sequence based onthe plurality of possible coding unit sizes; means for determining apicture size associated with the video sequence, wherein the picturesize associated with the video sequence is an multiple of the alignedcoding unit size; and means for signaling the aligned coding unit sizevalue in sequence level syntax information.
 8. The device of claim 7,wherein the aligned coding unit size is the maximum possible coding unitsize.
 9. The method of claim 7, wherein the plurality of possible codingunit sizes includes a maximum coding unit size of 64×64 pixels.
 10. Thedevice of claim 7, wherein determining a smallest coding unit size foreach of a plurality of pictures includes determining a first smallestcoding unit size of 4×4 pixels for a first picture and determining asecond smallest coding unit size of 8×8 pixels for a second picture; andwherein the aligned coding unit size for the video sequence is 4×4pixels.
 11. The device of claim 7, wherein determining a smallest codingunit size for each of a plurality of pictures includes determining afirst smallest coding unit size of 4×4 pixels for a first picture anddetermining a second smallest coding unit size of 8×8 pixels for asecond picture; and wherein the aligned coding unit size for the videosequence is 8×8 pixels.
 12. The device of claim 7, wherein the picturesize specifies a picture size of a decoded picture stored in a decodedpicture buffer.
 13. A device comprising a video encoder configured to:determine a smallest coding unit size for each of a plurality ofpictures defining a video sequence, wherein a smallest coding unit sizeis selected from a plurality of possible coding unit sizes including amaximum possible coding unit size; determine an aligned coding unit sizefor the video sequence based on the plurality of possible coding unitsizes; determine a picture size associated with the video sequence,wherein the picture size associated with the video sequence is anmultiple of the aligned coding unit size; and signal the aligned codingunit size value in sequence level syntax information.
 14. The device ofclaim 13, wherein the aligned coding unit size is the maximum possiblecoding unit size.
 15. The device of claim 14, wherein the plurality ofpossible coding unit sizes includes a maximum coding unit size of 64×64pixels.
 16. The device of claim 13, wherein determining a smallestcoding unit size for each of a plurality of pictures includesdetermining a first smallest coding unit size of 4×4 pixels for a firstpicture and determining a second smallest coding unit size of 8×8 pixelsfor a second picture; and wherein the aligned coding unit size for thevideo sequence is 4×4 pixels.
 17. The device of claim 13, whereindetermining a smallest coding unit size for each of a plurality ofpictures includes determining a first smallest coding unit size of 4×4pixels for a first picture and determining a second smallest coding unitsize of 8×8 pixels for a second picture; and wherein the aligned codingunit size for the video sequence is 8×8 pixels.
 18. The device of claim13, wherein the picture size specifies a picture size of a decodedpicture stored in a decoded picture buffer.
 19. A computer readablemedium comprising instructions stored thereon that when executed cause aprocessor to: determine a smallest coding unit size for each of aplurality of pictures defining a video sequence, wherein a smallestcoding unit size is selected from a plurality of possible coding unitsizes including a maximum possible coding unit size; determine analigned coding unit size for the video sequence based on the pluralityof possible coding unit sizes; determine a picture size associated withthe video sequence, wherein the picture size associated with the videosequence is an multiple of the aligned coding unit size; and signal thealigned coding unit size value in sequence level syntax information. 20.The computer readable medium of claim 19, wherein the aligned codingunit size is the maximum possible coding unit size.
 21. The computerreadable medium of claim 20, wherein the plurality of possible codingunit sizes includes a maximum coding unit size of 64×64 pixels.
 22. Thecomputer readable medium of claim 19, wherein determining a smallestcoding unit size for each of a plurality of pictures includesdetermining a first smallest coding unit size of 4×4 pixels for a firstpicture and determining a second smallest coding unit size of 8×8 pixelsfor a second picture; and wherein the minimum coding unit size for thevideo sequence is 4×4 pixels.
 23. The computer readable medium of claim19, wherein determining a smallest coding unit size for each of aplurality of pictures includes determining a first smallest coding unitsize of 4×4 pixels for a first picture and determining a second smallestcoding unit size of 8×8 pixels for a second picture; and wherein theminimum coding unit size for the video sequence is 8×8 pixels.
 24. Thedevice of claim 19, wherein the picture size specifies a picture size ofa decoded picture stored in a decoded picture buffer.
 25. A method ofdecoding video data comprising: obtaining a coded video sequenceincluding a first picture coded using a first smallest coding unit sizeand a second picture coded using second smallest coding unit size;obtaining a picture size of a decoded picture to be stored in a decodedpicture buffer wherein the picture size is a multiple of one of thefirst coding unit size, the second coding unit size, or a maximum codingunit size; and storing the decoded picture in a decoded picture buffer.26. The method of claim 25, wherein the first smallest coding unit sizeis 4×4 pixels and the second coding unit size is 8×8 pixels and thepictures size is a multiple of the first coding unit size.
 27. Themethod of claim 25, wherein the first smallest coding unit size is 4×4pixels and the second coding unit size is 8×8 pixels and the picturessize is a multiple of the second coding unit size.
 28. The method ofclaim 25, wherein the maximum coding unit size is 64×64 pixels and thepictures size is a multiple of the maximum coding unit size.
 29. Adevice configured to decode video data comprising: means for obtaining acoded video sequence including a first picture coded using a firstsmallest coding unit size and a second picture coded using secondsmallest coding unit size; means for obtaining a picture size of adecoded picture to be stored in a decoded picture buffer wherein thepicture size is a multiple of one of the first coding unit size, thesecond coding unit size, or a maximum coding unit size; and means forstoring the decoded picture in a decoded picture buffer.
 30. The deviceof claim 29, wherein the first smallest coding unit size is 4×4 pixelsand the second coding unit size is 8×8 pixels and the pictures size is amultiple of the first coding unit size.
 31. The device of claim 29,wherein the first smallest coding unit size is 4×4 pixels and the secondcoding unit size is 8×8 pixels and the pictures size is a multiple ofthe second coding unit size.
 32. The device of claim 29, wherein themaximum coding unit size is 64×64 pixels and the pictures size is amultiple of the maximum coding unit size.
 33. A device comprising avideo decoder configured to: obtain a coded video sequence including afirst picture coded using a first smallest coding unit size and a secondpicture coded using second smallest coding unit size; obtain a picturesize of a decoded picture to be stored in a decoded picture bufferwherein the picture size is a multiple of one of the first coding unitsize, the second coding unit size, or a maximum coding unit size; andstore the decoded picture in a decoded picture buffer.
 34. The device ofclaim 33, wherein the first smallest coding unit size is 4×4 pixels andthe second coding unit size is 8×8 pixels and the pictures size is amultiple of the first coding unit size.
 35. The device of claim 33,wherein the first smallest coding unit size is 4×4 pixels and the secondcoding unit size is 8×8 pixels and the pictures size is a multiple ofthe second coding unit size.
 36. The device of claim 33, wherein themaximum coding unit size is 64×64 pixels and the pictures size is amultiple of the maximum coding unit size.
 37. A computer readable mediumcomprising instructions stored thereon that when executed cause aprocessor to: obtain a coded video sequence including a first picturecoded using a first smallest coding unit size and a second picture codedusing second smallest coding unit size; obtain a picture size of adecoded picture to be stored in a decoded picture buffer wherein thepicture size is a multiple of one of the first coding unit size, thesecond coding unit size, or a maximum coding unit size; and store thedecoded picture in a decoded picture buffer.
 38. The computer readablemedium of claim 37, wherein the first smallest coding unit size is 4×4pixels and the second coding unit size is 8×8 pixels and the picturessize is a multiple of the first coding unit size.
 39. The computerreadable medium of claim 37, wherein the first smallest coding unit sizeis 4×4 pixels and the second coding unit size is 8×8 pixels and thepictures size is a multiple of the first coding unit size.
 40. Thecomputer readable medium of claim 37, wherein the maximum coding unitsize is 64×64 pixels and the pictures size is a multiple of the maximumcoding unit size.